End.

Mysql5.7 错误: this is incompatible with sql_mode=only_full_group_by(解决方法)

最近项目换上了Mysql5.7版本,然后发现惊奇的事件mysql竟然报错,大概说group by语句不行,感觉变成了Oracel一样,group by什么字段,就需要查询什么字段,这和mysql之前的版本是有冲突的,导致项目里面的group by语句都跑不起来了😳

下面将是小编总结的一些方法~可以解决哟


#概括 1、问题原因 2、解决方法


1、问题原因

mysql 5.7中 默认启用了 ONLY_FULL_GROUP_BY 这个表示什么呢,从字面上看,大概就是一种严谨的SQL模式,类似于Oracel那些Group by语句

那么我萌解决这个就很简单了~方法看下面😄

2、解决方法

2.1 普通解决(重启mysql后无效)

#第一步,显示现在的sql_mode
select @@GLOBAL.sql_mode;

#第二步,去掉上一步查出的sql_mode中的 ONLY_FULL_GROUP_BY,执行
set @@global.sql_mode = .......

2.2 高级解决(永久有效) 找到my.cnf,编辑它把以下命令放到合适位置,重启mysql 服务,OK报错没啦~ Centos的my.cnf文件一般在 /etc/my.cnf

[mysqld]
#sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

记得重启mysql服务哦~ OK啦,嘻嘻,重启后 开开心心地使用 低限制的group by语句吧😄


The End.

End.